1. Field of the Invention
The present technology relates to nonvolatile memory with resistive memory cells such as phase change memory.
2. Description of Related Art
Resistive memory cells such as phase change memory suffer from the problem of resistance drift. In resistance drift, the mere passage of time since the last program operation results in continued change of the resistance value stored by the memory cell.
FIG. 1 is a graph showing an example of resistance drift with constant reference thresholds. The reference thresholds include reference 1 11, reference 2 13, and reference 3 15. The reference thresholds define the outer bounds of resistance windows and define resistance ranges representing different data values stored in memory cells.
Because of resistance drift, the resistance windows of the acceptable resistance ranges to store respective data values narrow with the passage of time. If not addressed, the resistance windows for data values can narrow unacceptably or even disappear entirely, and particular memory cells can store resistance values that drift outside the resistance range that represents the data value that was stored in the particular memory cells. For example, in FIG. 1, the resistance values R2 and R3 have drifted over time to different resistance ranges. When programmed, resistance value R2 was between reference 1 11 and reference 2 13, but as a result of resistance drift, resistance value R2 later is between reference 2 13 and reference 3 15. When programmed, resistance value R3 was between reference 2 13 and reference 3 15, but as a result of resistance drift, resistance value R3 later is over reference 3 15. In either case, because the resistance values R2 and R3 have suffered resistance drift, the memory cells storing resistance values R2 and R3 store resistances the represent different data values than the initial data values represented by the initially programmed resistances.
One approach to address resistance drift is to perform numerous updates of the thresholds between resistance ranges. In this approach, as the memory cells undergo resistance drift with time, the thresholds are artificially changed with time. This approach heavily relies on accurate resistance drift models, which can diverge from the actual resistance drift experienced by some, if not many, of the memory cells. As time passes, such divergence between modeled and actual resistance drift worsens.
For example, FIG. 2 is a graph showing an example of resistance drift with reference thresholds that are adjusted with time. The reference thresholds include reference 1 117, reference 2 19, and reference 3 21. Again, the reference thresholds define the outer bounds of resistance windows that define resistance ranges representing different data values. However, in an attempt to compensate for resistance drift experienced by the stored resistance values, the reference thresholds undergo numerous updates. Ideally, the updated reference thresholds result in the stored resistance values staying in the correct respective resistance ranges despite resistance drift. However, the heavy reliance on models can prove misplaced, and such divergence between modeled and actual resistance drift worsens with time.
It is therefore desirable to address resistance drift in a way that accurately reflects the underlying resistances of the memory cells. It is also desirable to address resistance drift in a way that does not become less accurate over the lifetime of the memory device.